memo a grid

Otázka od: Dalibor Faltynek

26. 10. 2004 13:40

Ahoj,
nevite prosim nekdo, jak otevrit nejak sikovne v dbgridu polozku paradoxu
typu memo? (D5Ent).
Dekuji - Faltynek.


Odpovedá: Petr Brant

26. 10. 2004 15:01

Delal jsem to tak, ze jsem cast toho textu (prvnich 40 znaku) vykresloval
rucne - viz kus kodu. Anebo muzes pouzit calculated polozku.

Zdravim

RNDr. Petr Brant [brant@dcomm.cz]
http://brant.wz.cz


procedure TMsgWnd.MsgDBGridDrawColumnCell(Sender: TObject;
  const Rect: TRect; DataCol: Integer; Column: TColumn;
  State: TGridDrawState);
var Text: string;
begin
 if (gdSelected in State) or (gdFocused in State) then
 begin
  MsgDBGrid.Canvas.brush.Color:= clAqua;
  MsgDBGrid.Canvas.FillRect(Rect);
  MsgDBGrid.Canvas.Font.Color:=clBlack;
 end;
 MsgDBGrid.DefaultDrawColumnCell(Rect, DataCol, Column, State);
 if UpperCase(Column.Field.FieldName) = 'TEXT' then
 begin
  ....
  Text:= Copy(MsgTable.FieldByName('Text').AsString, 1, 40);
  MsgDBGrid.Canvas.Font.Color:= clAqua;
  MsgDBGrid.Canvas.Font.Style:= [fsBold];
  MsgDBGrid.Canvas.TextOut(Rect.Left + 2, Rect.Top + 2, Text);



nevite prosim nekdo, jak otevrit nejak sikovne v dbgridu polozku paradoxu
typu memo? (D5Ent).

Odpovedá: Dalibor Faltynel

27. 10. 2004 12:16

Diky za radu, u kratsich textu je to fajn, asi to ale udelam do udalosti
onclick otevrenim okna s memo komponentou. 40 znaku nestaci.

Dalibor.